package com.moli.iov.base.remote;

import com.moli.iov.base.model.dto.req.VehicleFenceBindingReqDto;
import com.moli.iov.base.model.dto.req.VehicleFenceBindingReqOpDto;
import com.moli.iov.rest.RestResponse;

/**
 *  围栏绑定
 * @author whl
 */
public interface IVehicleFenceBindingRemoteService {

  /**
   * 绑定围栏
   * @param dto
   * @return
   */
  RestResponse saveVehicleFenceBinding(VehicleFenceBindingReqDto dto);

  /**
   * 删除围栏
   *
   * @param dto
   * @return
   */
  RestResponse deleteVehicleFenceBinding(VehicleFenceBindingReqDto dto);

  /**
   *获得绑定围栏列表
   *
   * @param dto
   * @return
   */
  RestResponse listVehicleFenceBindingList(VehicleFenceBindingReqDto dto);

  /**
   *  解绑围栏列表
   *
   * @param dto
   * @return
   */
  RestResponse listVehicleFenceUnbindingList(VehicleFenceBindingReqDto dto);

  /**
   * 绑定详情
   * @param dto
   * @return
   */
  RestResponse listVehicleFenceDetailList(VehicleFenceBindingReqDto dto);

  /**
   * 绑定围栏Op
   * @param dto
   * @return
   */
  RestResponse saveVehicleFenceBindingOp(VehicleFenceBindingReqOpDto dto);

  /**
   * 解除围栏Op
   * @param dto
   * @return
   */
  RestResponse deleteVehicleFenceBindingOp(VehicleFenceBindingReqOpDto dto);

  /**
   * 删除车架号已绑定的围栏
   * @param dto
   * @return
   */
  RestResponse deleteAllVehicleFenceBinding(VehicleFenceBindingReqOpDto dto);

  /**
   * 车是否在围栏内
   * @param dto
   * @return
   */
  RestResponse isVehicleInsideFence(VehicleFenceBindingReqOpDto dto);
  /**
   * 车是否在围栏内 fenceIds vin
   * @param dto
   * @return
   */
  RestResponse isVehicleInsideFenceList(VehicleFenceBindingReqOpDto dto);
}
